ПЛИС как DSP

Последние два-три года производители больших вентильных матриц (ПЛИС) стали рекламировать свои изделия в качестве альтернативы классическим процессорам цифровой обработки сигналов (DSP). Появились целые библиотеки стандартных узлов DSP, например, КИХ- фильтры, пригодные для встраивания в общий проект на базе ПЛИС. В данной статье обозначен круг задач, для которых применение больших логических матриц дает ощутимый эффект по сравнению с классическими DSP и, более того, часто бывает единственно возможным путем практической реализации. В статье также представлен один из подходов к созданию гибкого DSP конструктора на базе ПЛИС EPF10K фирмы ALTERA.

Исторически, процессоры цифровой обработки сигналов берут начало от обычных микропроцессоров последовательного действия. Именно последовательность выполнения операций ограничивает производительность таких устройств. Поэтому, у разработчиков DSP возникла мысль так модифицировать архитектуру обычного процессора, чтобы ряд действий производился параллельно. Например, ввод текущих значений сигнала с одновременным их суммированием. Так получили свое начало процессоры DSP. Они продолжают оставаться последовательными машинами, однако их усовершенствование идет в направлении все большего и большего запараллеливания нескольких действий. Сейчас, например, уже стало привычным выполнение за один такт ввода значения сигнала, умножение его и аккумулирование результата. При этом, еще может автономно, на аппаратном уровне, происходить обмен данными с другими объектами системы.

Последние достижения в повышении производительности DSP безусловно впечатляют, но предел изобретательства в рамках последовательной машины становится все ощутимее. Например, чтобы задать параллельное выполнение нескольких действий одновременно, производители DSP вынуждены использовать шины данных, как внутри чипа DSP, так и вне его, с очень большим количеством бит, что резко удорожает конструкцию и вообще имеет конструктивный предел. Так, например, фирма TI поставила своеобразный рекорд: ее макро инструкция имеет ширину 256 бит, в которой может быть упаковано до 8-ми параллельно выполняемых действий. Может, но при условии особого искусства программиста, вооруженного специальным инструментом оптимизации кода (см. о TMS320C6X в «Chip News» N4, 97). Должно очень сильно повезти, чтобы алгоритм обработки «развалился», без холостых выравнивающих пауз, на восемь синхронно протекающих процессов. Реально же по-видимому можно ожидать не более 2...3-х кратного запараллеливания действий.

Повышение тактовой частоты, как еще одна возможность поднять производительность, тоже не безгранично и всегда сопровождается весьма ощутимыми накладными расходами. Приходится применять особые приемы разводки печатных плат, монтажа, особые номиналы питаний. И это относится не только к самому DSP, но и ко всем схемам обвязки.

По оценкам специалистов фирмы ALTERA процессоры DSP, по состоянию на начало 1996 года, допускают предел скорости поступления сигнала для типичных алгоритмов КИХ- фильтрации примерно в 25 Msps (миллионов замеров в секунду). Скорость поступления данных не следует путать с производительностью по инструкциям (измеряется в Mips- миллион инструкций в секунду), который фигурирует в характеристиках процессора DSP. Скорости по инструкциям явно недостаточно. чтобы ответить на вопрос: удастся ли пользователю реализовать его алгоритм обработки данных, поступающих с такой-то скоростью? Все зависит от критического цикла, который всегда образуется из нескольких инструкций. При малейшем отклонении от типичных приемов DSP, которые имели ввиду производители чипа, создавая конкретную архитектуру параллелизма, эффективность упаковки нескольких действий в одной макро инструкции резко падает, приходится наращивать критический цикл дополнительными инструкциями, и производительность системы катастрофически падает. Разработчик в этом случае вынужден устанавливать и второй, и третий DSP. Кстати, такое развитие событий предусмотрено самими изготовителями, которые снабжают свои чипы скоростными узлами для каскадирования. О конечной сложности, надежности и стоимости конечных систем предоставляем судить читателю.

В роли DSP, большие ПЛИС практически не имеют перечисленных ограничений просто потому, что являются машинами параллельного действия. Здесь отсутствует принципиальное ограничение производительности и гибкости, связанное с последовательным выполнением инструкций. Совсем не экзотика и вполне реально на ПЛИС реализовать синхронную машину конвейерного типа, производящую все действия довольно сложного алгоритма за один такт одновременно. Такт же у современных матриц достигает 150..250 Мгц, и он же может быть принят за предельную скорость поступления данных практически без оговорок на сложность или нестандартность алгоритмов обработки. Таким образом, ПЛИС принимают от DSP эстафетную палочку примерно у черты 25 Msps и идут дальше в область более высоких скоростей поступления данных. По сути, ПЛИС возвращает к жизни скоростные преимущества россыпной логики, которая была побеждена в свое время микропроцессорами из-за своей негибкости и ненадежности.

Перейдем теперь от общих рассуждений к предметному описанию встретившейся нам задачи DSP и покажем на ее примере тот ряд характеристик и условий, при которых преимущество больших ПЛИС в роли DSP становится достаточно очевидным.

Была поставлена задача разработать плату экстрактора радиолокационных сигналов. Частота квантования по входу видео не должна была быть ниже 40 Мгц. Плата предназначена для установки в ISA слот персонального компьютера, чтобы по DMA каналу постоянно обновлять в памяти компьютера картину кругового зондирования. Пуск зондирований происходил синхросигналом извне с периодом порядка 600 мкС. При этом само зондирование длится 160 мкС., а затем производится выгрузка данных в PC и адаптивная подготовка к следующему зондированию.

Было решено всю обработку вести цифровыми методами. С этой целью, видеосигнал с локатора преобразовывался на 10-ти разрядном АЦП. Анализ алгоритма экстракции показал, что устройство должно иметь порядка семи достаточно самостоятельных узлов, работающих в параллель с тактом 25 нС. Кратко перечислим некоторые из них.

Узел восстановления нулевого уровня видеосигнала. Он устранял искажения, вносимые входной цепью с разделительным конденсатором. С частотой 40 Мгц этот узел выделяет локальные минимумы и производит вычитания со знаком.

Узел вычисления средних значений видеосигнала на последовательности временных интервалов зондирования. Здесь требовалось не просто суммирование, а с предварительной отбраковкой шумовых артефактов и больших целей. В результате, выборка становилась нерегулярной, могла заканчиваться в произвольном месте временного интервала. Соответственно, промежуточные результаты незаконченной выборки приходилось отправлять в память, чтобы на следующем зондировании возобновить накопление среднего. Этот довольно сложный алгоритм реализовался с тактом в 40 МГц.

Узел экстракции отраженных импульсов представляет собою амплитудный компаратор с переменным на каждом временном интервале порогом. Порог выбирается из памяти, как результат автоподстройки по результатам предыдущего зондирования. Компаратор срабатывает, как на восходящий, так и на падающий фронт импульса с временным разрешением в 25 нС.

Память FIFO, в которую по сигналу компаратора защелкивались значения 16-ти битного 40 МГц счетчика времени и другая служебная информация.

Узел измерения азимута работает на значительно меньшей частоте. Производит действия по устранению дребезга счетных импульсов, фильтрует удвоения и пропадания импульсов, возникающие на длинных кабелях подключения.

Диспетчер памяти, в которой хранятся промежуточные результаты и параметры адаптивной подстройки порогов экстракции. Это устройство представляет собою RISC- процессор с системой команд, оптимизированный для пересылок блоков данных синхронно с внешними событиями. Тут же размещено ПЗУ с программой действий. Диспетчер также производит подготовку порогов компаратора по непростому алгоритму с участием средних уровней шумов. Там производится сортировка шумов, целочисленное умножение, сложение, проверка на выход за пределы и ограничение результата.

Наконец, узел DMA для пересылки содержимого памяти FIFO в память компьютера и узел управления режимами через порт ввода-вывода. Эти узлы работают на частоте системной шины ISA, она обычно не превышает 12 МГц.

Скоростные требования к отдельным узлам этого устройства (40Msps) практически сразу исключили из рассмотрения вариант классического DSP. Ведь пришлось бы, для каждого из семи перечисленных узлов, выделять по одному чипу DSP и строить из них сложнейший конвейер. Даже использование суперсовременного TMS320C6X привело бы к конвейеру из нескольких таких чипов из-за явной нестандартности нашего алгоритма DSP. Так, волей-неволей, пришлось искать альтернативы. Удачный выход нашелся в применении сверх большой ПЛИС. Все перечисленные выше узлы, включая RISC- процессор со своей программой действий, удалось разместить в одном кристалле загружаемой матрицы EPF10K30 фирмы ALTERA. Следует обратить внимание на достигнутую при этом степень интеграции и надежность, на высокую ценовую и технологическую эффективность такого решения, в сравнении с конвейером из семи процессоров DSP. Думается, что приведенная здесь практическая задача радиолокации дает читателю представление, хотя бы качественно, о тех объемах, скоростях и нестандартности обработки сигналов, при которых следует отдать предпочтение сверх большим ПЛИС вместо классических DSP.

Однако, на этом пути разработчика могут подстерегать трудности. Многие из них нивелированы, в частности, уже не так остро стоит проблема приобретения самих матриц и пакета САПР. Но все еще остались трудности, связанные с электрическим конструированием широкополосных входных цепей, подводкой питания, монтажом матриц, процедурами их программирования и тестирования в реальном времени. Чтобы облегчить жизнь начинающим, мы разработали DSP конструктор с использованием загружаемых ПЛИС. В этом конструкторе разработчик найдет уже готовые решения широкополосных входных цепей, решения по вводу сигналов в память персонального компьютера через DMA и порты ввода/вывода, по программированию матриц с использованием ресурсов компьютера. Можно порекомендовать нашу плату, как базовое изделие для реализации самых разных задач скоростной обработки аналоговых сигналов. Об уровне этих задач читатель можно судить по тому, что на этом самом конструкторе был реализован описанный выше алгоритм экстракции радиолокационных сигналов.

Плата DSP-конструктора предназначена для построения систем, в которых производится прием и аналого-цифровое преобразование сигнала, предварительная его обработка внутри ПЛИС с целью сжатия информации и далее- ввод в память персонального компьютера. Как уже говорилось, особенностью здесь является применение в роли DSP сверхбольшой ПЛИС, гибко программируемой самим пользователем. Это позволяет достичь простыми и надежными средствами высокой производительности (до 150 МГц частоты квантования сигнала при соответствующей скоростной градации ПЛИС) плюс небывалую гибкость применения. В DSP конструкторе могут устанавливаться 208-ножковые матрицы FLEX-10K фирмы ALTERA (типы 10K10, 10K20, 10K30, 10K40), которые совместимы между собой ножка в ножку, но отличаются размером ресурсов логических элементов, количеством линий внутренней коммутации и блоков встроенной памяти.

Разработка и отладка алгоритмов DSP для данной платы ведется пользователем на пакете MAX+II версии не ниже 7.2. Изготовленный файл конфигурации ПЛИС загружается в основную матрицу конструктора через шину компьютера с помощью прилагаемой нами программы. Применен параллельный протокол загрузки. Самой загрузкой заведует другая, меньшая матрица с фиксированной прошивкой.

Вспомогательную матрицу специально выбрана с избытком по ресурсам из предположения, что ей предстоит заниматься не только загрузкой основной матрицы. Для многих очень важным моментом является вопрос защиты интеллектуального. Этот вопрос здесь весьма актуален потому, что сама электрическая конструкция на базе ПЛИС совершенно прозрачна, а загружаемый в нее файл конфигурации доступен на винчестере компьютера или во внешнем ПЗУ. Избежать неприятностей от пиратов позволяет размещение части прикладного проекта во вспомогательной матрице с фиксированной прошивкой, которая закрывается битом секретности. Именно для этого во вспомогательной матрице имеется некоторая избыточность ресурсов, а между двумя матрицами конструктора проложен ряд линий связи. Теперь пользователь может проявить изобретательность и построить защиту своему изделию самостоятельно. Важно, что это будет чисто аппаратная защита минуя компьютер, что безусловно является наиболее трудной задачей взлома.

В заключение порекомендуем заинтересованному читателю обратиться к дистрибьюторам ПЛИС за фирменными CD- дисками. В них можно будет обнаружить все необходимое для практической работы с матрицами, а применительно к задачам DSP- целые библиотеки из отлаженных узлов. Ту же информацию можно скачать со страничек Интернета фирм производителей и самой ALTERA.

 

Published by NewIT Labs
NEW IT Labs